#pragma once
#include <i_misc.h>
#include <string>
#include <functional>

namespace fs
{
	MISC_DLL_EXPORT bool IsFileExists(const std::string& path_utf8);

	MISC_DLL_EXPORT bool IsDirExists(const std::string& path_utf8);

	MISC_DLL_EXPORT bool MakeDir(const std::string& path_utf8);

	MISC_DLL_EXPORT void CopyFile(const std::string& src_path_utf8, const std::string& dst_path_utf8);

	MISC_DLL_EXPORT int64_t GetFileLastWriteTime(const std::string& src_path_utf8);

	MISC_DLL_EXPORT void ForeachFileInDir(const std::string& dir, const std::function<bool(const std::string& file)>& callback);

	MISC_DLL_EXPORT bool IsDllFile(const std::string& file);

	MISC_DLL_EXPORT std::string& FormatPath(std::string& file);

	MISC_DLL_EXPORT void SplitePath(const std::string& fullpath, std::string* dir, std::string* filename, std::string* filext);
}